/-app
/-app/boot
/-app/layout
/-app/layout/loading
/-app/layout/managed
AssemblyDetails.html
CustomAttribute.html
FieldInfo.html
MethodInfo.html
Type.html
page.css
page.html
/-app/layout/tree
/-app/layout/unmanaged
app.css
commonPage.css
pe.css
pefile.html
/-app/loaded
/-app/loading
/-app/mscorlib
Application.ts
earlyinit.js
format.ts
functions.ts
ko.ts
lateinit.js
/-core
/-headers
/-imports
/-io
BufferReader.ts
/-managed ...
/-managed/metadata
/-managed/metadata/enums
ClrDirectory.ts
ClrMetadata.ts
CodedIndexReader.ts
CodedIndexReaders.ts
MetadataStreams.ts
SignatureReader.ts
TableCompletionReader.ts
TableReader.ts
TableStream.ts
bits.ts
/-managed/tables
Assembly.ts
AssemblyOS.ts
AssemblyProcessor.ts
AssemblyRef.ts
AssemblyRefOS.ts
AssemblyRefProcessor.ts
ClassLayout.ts
Constant.ts
CustomAttribute.ts
DeclSecurity.ts
Event.ts
EventMap.ts
ExportedType.ts
Field.ts
FieldLayout.ts
FieldMarshal.ts
FieldRva.ts
File.ts
GenericParam.ts
GenericParamConstraint.ts
ImplMap.ts
InterfaceImpl.ts
ManfiestResource.ts
MemberRef.ts
MethodDef.ts
MethodImpl.ts
MethodSemantics.ts
MethodSpec.ts
Module.ts
ModuleRef.ts
NestedClass.ts
Param.ts
Property.ts
PropertyMap.ts
StandaloneSig.ts
TypeDef.ts
TypeRef.ts
TypeSpec.ts
AppDomain.ts
Assembly.ts
EventInfo.ts
FieldInfo.ts
MethodInfo.ts
ParameterInfo.ts
PropertyInfo.ts
Type.ts
/-typings
/-unmanaged
pe.html
pe.ts
1
module pe.managed {
2
 
3
  export class Type {
4
 
5
    isSpeculative = true;
6
 
7
    attributes: metadata.TypeAttributes = 0;
8
    fields: FieldInfo[] = [];
9
    methods: MethodInfo[] = [];
10
    properties: PropertyInfo[] = [];
11
    events: EventInfo[] = [];
12
 
13
    genericPrototype: Type = null;
14
    genericArguments: Type[] = [];
15
 
16
    interfaces: Type[] = [];
17
    netedTypes: Type[] = [];
18
    nestingParent: Type = null;
19
 
20
    layout: { packingSize: number; classSize: number; } = null;
21
 
22
    customAttributes: any[] = null;
23
 
24
    constructor(
25
      public baseType?: Type,
26
      public assembly?: Assembly,
27
      public namespace?: string,
28
      public name?: string) {
29
    }
30
 
31
    getBaseType() { return this.baseType; }
32
    getAssembly() { return this.assembly; }
33
    getFullName() {
34
      if (this.namespace && this.namespace.length)
35
        return this.namespace + "." + this.name;
36
      else
37
        return this.name;
38
    }
39
 
40
    toString() {
41
      if (this.genericArguments.length) {
42
        var fullName = this.getFullName();
43
        var qpos = fullName.indexOf('`');
44
        if (qpos >= 0)
45
          fullName = fullName.substring(0, qpos);
46
        fullName += '<' + this.genericArguments.join(',') + '>';
47
        return fullName;
48
      }
49
      else {
50
        return this.getFullName();
51
      }
52
    }
53
  }
54
 
55
}